/**
 * HongsCORE 公共样式
 * 作者: 黄弘<kevin.hongs@gmail.com>
 * 版本: 2018/07/28 22:10
 */

/*
html, body, p, h1, h2, h3, h4, h5, h6, ul, ol, table {
    font-family: "Microsoft Yahei","Helvetica Neue","Open Sans",Helvetica,Tahoma,Arial,sans-serif;
}
label, input, button, select, textarea {
    font-family: "Microsoft Yahei","Helvetica Neue","Open Sans",Helvetica,Tahoma,Arial,sans-serif;
}
.btn, .tooltip, .popover {
    font-family: "Microsoft Yahei","Helvetica Neue","Open Sans",Helvetica,Tahoma,Arial,sans-serif;
}
code, pre, var, dfn, kbd {
    font-family: "Courier New",Monaco,Menlo,monospace;
}
*/

/** Bootstrap 调整 **/

.invisible ,
.template  ,
:not(.dropup) > .dropdown-body ,
:not(.dropup) > .dropdown-list {
    visibility: hidden;
    overflow: hidden;
    display: block;
    width: 0;
    height: 0;
    padding: 0;
    border: 0;
    margin: 0;
    min-width: 0;
    min-height: 0;
    max-width: 0;
    max-height: 0;
}

.center-block {
    float : none ;
}
.dropdown-toggle {
    cursor: pointer;
}
fieldset>.dropdown-body ,
fieldset>.dropdown-list {
    margin-top: -10px;
}

.glyphicon {
    top: 2px; /* 修正 Mac 偏下 */
}

.code ,
.samp {
    font-family: monospace;
}
.close ,
.badge ,
.label {
    font-family: Helvetica, Arial, sans-serif; /* Helvetica Neue 偏下 */
}

.btn .close {
     box-shadow: none;
    text-shadow: none;
    font-size  : 20px;
    line-height: 20px;
    color : #666;
    opacity: 0.6;
}
.btn .close:hover ,
.btn .close:focus {
    opacity: 1.0;
}
.btn-sm .close ,
.form-group-sm .btn .close {
    font-size  : 18px;
    line-height: 18px;
}
.btn-lg .close ,
.form-group-lg .btn .close {
    font-size  : 24px;
    line-height: 24px;
}

.btn.form-control {
    background-image : none;
     box-shadow: none;
    text-shadow: none;
    text-align : left;
}
.btn.text-left {
    text-align : left;
}
.btn.text-right {
    text-align : right;
}
.btn.text-center {
    text-align : center;
}
.btn-default.form-control {
    color: #999;
}

textarea.form-editor {
        border:  0;
        width : 100%;
        height: 16.61538462em;
}
textarea.form-control,
select.form-control[multiple] {
        height:  8.30769231em;
    min-height:  8.30769231em;
    max-height: 49.84615386em;
    resize: vertical;
}
.form-control[disabled] {
    background: #ddd;
    cursor: default;
}
.form-control[readonly] {
    background: #fff;
    cursor: default;
}

/* 统一 select 样式 */
select.form-control ,
.form-control select {
    appearance: none;
    -moz-appearance: none;
    -webkit-appearance : none;
    background-size    : 16px 8px ;
    background-repeat  : no-repeat;
    background-position: right .75rem center;
    background-image   : url("../icons/caret-dn.svg");
}
.form-group-sm select.form-control ,
.form-group-lg select.form-control {
    line-height: inherit;
}
select.form-control  option[value=""] ,
.form-control select option[value=""] {
    color: #888;
}

@media screen and (-webkit-min-device-pixel-ratio: 0) {
input[type="datetime-local"].form-control,
input[type="date"].form-control ,
input[type="time"].form-control {
    line-height   : 2.5;
    padding-top   : 0;
    padding-bottom: 0;
}
}

.form-control-static._text {
    white-space: pre-wrap;
}
.form-control-static._html {
    white-space: normal;
}
.form-control-static._html>:last-child {
    margin-bottom: 0;
}

.radio legend ,
.checkbox legend {
    margin-bottom: 0;
    font-size : inherit;
}
.radio label  ,
.checkbox label  {
    margin-right : 20px;
    font-size : inherit;
}

/* 修正选择框在特殊表单组下不变化的问题 */
.form-group-lg .radio ,
.form-group-lg .checkbox {
    font-size: 18px;
}
.form-group-sm .radio ,
.form-group-sm .checkbox {
    font-size: 12px;
}
.form-group-sm .radio input[type=radio] ,
.form-group-sm .checkbox input[type=checkbox] {
    margin-top: 2px;
}

/* 修正横向布局表单内嵌模态框内样式问题 */
.form-horizontal .alert-body>.form-group ,
.form-horizontal .modal-body>.form-group ,
.form-horizontal form:not(.form-horizontal) .form-group {
    margin-left : 0;
    margin-right: 0;
}

.form-group .help-block:empty ,
.form-group .text-error:empty ,
.form-group .text-muted:empty {
    display: none;
}
.help-block.form-control-static {
    margin-top   : 0;
    margin-bottom: 0;
}
             .help-block.text-muted ,
.has-error   .help-block.text-muted ,
.has-success .help-block.text-muted ,
.has-warning .help-block.text-muted {
    color: #777;
}

/* 必填标识 */
.form-icon-required::before ,
.form-icon-requires::before {
    color: #d55;
    content: '\2732';
}

/* 修正 panel 和 modal 中内容底部多余空隙 */
.well>.panel ,
.panel-body>.panel
.modal-body>.panel {
    border : 0;
    padding: 0;
    box-shadow: none;
}
.well>.board ,
.panel-body>.board ,
.modal-body>.board {
    margin-bottom: 0;
}
.well.openbox ,
.panel-body.openbox ,
.modal-body.openbox {
   padding-bottom: 0;
}

/** 响应式表格区 **/

.table-responsive {
    margin-bottom:20px;
}
.table-responsive>.table {
    margin-bottom: 0px;
}

.table-compressed> thead {
    position: sticky;
    left: 0;
    top : 0;
    z-index: 1;
    background: #fff;
    box-shadow: 0 0 2px #ddd;
}

.table-compressed td ,
.table-compressed th {
    max-width: 20em;
    overflow-x : hidden;
    overflow-y : hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.table>tbody tr.active>td ,
.table>tbody tr.active>th {
    color: #444444;
    background: #e8e8e8;
}
.table tbody tr.active:hover>td ,
.table tbody tr.active:hover>th {
    color: #000000;
    background: #e0e0e0;
}

/** 可后退导航条 **/

/**
 * hide-less-bread 空或只有一个页签时隐藏
 * hold-live-close 固定活动页签的关闭按钮
 * hide-idle-close 隐藏非活动页签关闭按钮
 * hide-icon-after 有图标非活动的隐藏其他
 */

.tabs.hide-less-bread:empty ,
.tabs.hide-less-bread.less-bread ,
.tabs.hold-live-close li:not(.active) .close ,
.tabs.hide-idle-close li:not(.active) .close ,
.tabs.hide-icon-after li:not(.active) .bi~.title ,
.tabs.hide-icon-after li:not(.active) .bi~.close ,
.tabs:not(.home-bread):not(.host-bread) .host-crumb {
    display: none !important;
}

.tabs.hold-live-close {
    position: relative;
}
.tabs.hold-live-close li.active .close {
    text-align: center;
    position: absolute;
    right : 15px;
    opacity: 0.6;
}
.tabs.hold-live-close li.active .close:hover ,
.tabs.hold-live-close li.active .close:focus {
    opacity: 1.0;
}

.tabs li a:empty:before ,
.tabs li b:empty:before ,
.tabs li .title:empty:before {
    content: "..." ;
}

.nav-tabs   .close ,
.nav-pills  .close ,
.breadcrumb .close {
    font-size: 20px;
    line-height: 1.0em;
    margin-left: 0.5em;
}
.nav-tabs   .bi+ * ,
.nav-pills  .bi+ * ,
.breadcrumb .bi+ * {
    margin-left: 0.5em;
}

.breadcrumb > li.home-crumb::before ,
.breadcrumb > li.host-crumb::before ,
.breadcrumb > li.hold-crumb::before {
    padding: 0 ;
    content: "";
}

/** 其他组件调整 **/

/* jquery-ui */
.ui-sortable-handle,
.ui-draggable-handle ,
.ui-droppable-handle {
    touch-action: none;
    -ms-touch-action: none;
}

/* bootstrap-tagsinput */
div.bootstrap-tagsinput.form-control {
    padding: 2px 4px;
}
div.bootstrap-tagsinput.form-control input {
    padding: 0px 8px;
}
div.bootstrap-tagsinput .tag [data-role="remove"]:after {
    content: "\00d7";
}
.form-group-sm div.bootstrap-tagsinput.form-control {
    padding: 2px 4px;
}
.form-group-lg div.bootstrap-tagsinput.form-control {
    padding: 4px 6px;
}

/* bootstrap-fileinput */
.file-preview-frame .file-preview-image,
.file-preview-frame video,
.file-preview-frame audio,
.file-preview-frame object {
    width: auto;
    height: 160px;
    max-width: 100%;
}
.file-preview .close {
    margin-right: 4px;
}

/* summernote */
.note-editor.panel {
    margin: 0;
}
.note-editor .note-btn i+.note-icon-caret {
    margin: 0 -6px 0 0;
}
.note-editor .note-btn .note-current-fontsize ,
.note-editor .note-btn .note-current-fontname {
    margin: -1px 0 0 0;
    line-height: 1.1em;
    text-align: center;
    vertical-align: middle;
}
.note-editor .note-popover .note-para .dropdown-menu ,
.note-editor .note-toolbar .note-para .dropdown-menu {
    width: 222px;
}

/* codemirror */
.CodeMirror.form-control        ,
.CodeMirror.form-control-static {
    background: #fefefe;
    padding: 0;
}
.CodeMirror.form-control        .CodeMirror-lines {
    padding: 11px 0 11px 0;
}
.CodeMirror.form-control-static .CodeMirror-lines {
    padding: 12px 0 12px 0;
}

/** 布局 **/

.flex-middle {
    display  : flex;
    flex-wrap: wrap;
    align-content: center;
}
.flex-center {
    display  : flex;
    flex-wrap: wrap;
    justify-content: center;
}

.labs>*>h1,
.labs>*>h2,
.labs>*>.loadbox>h1,
.labs>*>.loadbox>h2,
.tabs + .loadbox>h1,
.tabs + .loadbox>h2,
.modal-body.loadbox>h1 ,
.modal-body.loadbox>h2 {
    display: none;
}

.modal-header:empty ,
.modal-footer:empty {
    display: none;
}

.alert.dialog {
    border-color: rgba(204,204,204,0.3);
    box-shadow: 0 0 30px #333;
    color : #eee;
    margin: 0;
}
.alert.warnbox ,
.alert.waitbox {
    padding: 30px 15px;
}
.alert-footer {
    text-align : right;
}
.alert-footer button {
    margin-left: 5px;
}
.alert-header h4 ,
.modal-header h4 {
    line-height: inherit;
    margin-bottom: 0;
}
.alert-header .close ,
.modal-header .close {
    margin-top : 2px;
}
.alert-content>.alert-body ,
.alert-content>.alert-footer {
    margin-top : 1em;
}
.alert-content>.alert-body:empty ,
.alert-content>.alert-footer:empty {
    margin-top : 0px;
}
.alert.dialog .alert-header .close {
    color : #fff;
    opacity: 0.6;
}
.alert.dialog .alert-header .close:hover ,
.alert.dialog .alert-header .close:focus {
    opacity: 1.0;
}

/* 对话框背景色, 类按钮情景色 */
.alert.dialog ,
.alert.dialog.alert-default {
    background: rgb (51,51,51);
    background: rgba(51,51,51,0.8);
}
.alert.dialog.alert-info {
    background: rgb (0,102,153);
    background: rgba(0,102,153,0.8);
}
.alert.dialog.alert-success {
    background: rgb (0,102,0);
    background: rgba(0,102,0,0.8);
}
.alert.dialog.alert-warning {
    background: rgb (204,102,0);
    background: rgba(204,102,0,0.8);
}
.alert.dialog.alert-danger  {
    background: rgb (153,0,0);
    background: rgba(153,0,0,0.8);
}
.alert.dialog .btn-link {
    color : #fff;
}
.alert.dialog .btn-link:hover ,
.alert.dialog .btn-link:focus {
    color : #ddd;
}

/* 类似 panel 和 form-group, 但无边框无背景 */
.board {
    margin-bottom: 20px;
}
.group {
    margin-bottom: 15px;
}
.board-end:after {
    margin-bottom: -20px;
    display: table;
    content: "";
}
.group-end:after {
    margin-bottom: -15px;
    display: table;
    content: "";
}
.parag-end:after {
    margin-bottom: -10px;
    display: table;
    content: "";
}

/** 适配 **/

.modal-bottom {
    align-items: flex-end;
    display: flex;
}
.modal-middle {
    align-items: center;
    display: flex;
}
.modal {
    padding: 10px;
}
.modal-dialog ,
.alert.dialog {
    margin :  0px;
    width  : 100%;
}
@media (min-width: 768px) {
    .modal {
        padding : 0px;
    }
    .modal-dialog {
        width : 600px;
        margin:  30px auto;
        border-radius: 6px;
    }
    .modal-dialog.modal-lg {
        width : 900px;
    }
    .modal-dialog.modal-sm {
        width : 300px;
    }
    .alert.dialog {
        width : 600px;
        margin:  30px auto;
        border-radius: 6px;
    }
    /* Windows 警告框也没再用横幅的形式
    .alert.warnbox ,
    .alert.waitbox {
        width : 100% ;
        margin:   0px auto;
        border-radius: 0px;
        border-right : 0px;
        border-left  : 0px;
    }
    .alert.warnbox>.alert-content ,
    .alert.waitbox>.alert-content {
        width : 600px;
        margin:   0px auto;
    }
    */
    /* 规避警告框右侧的滚动条间隙 */
    .alert-modal {
        padding-right: 0 !important;
    }
}

/* 深色模式 */
.dark-mode ,
.dark-mode  img ,
.dark-mode .img ,
.dark-mode .deny-dark ,
.dark-mode .navbar-inverse ,
.dark-mode .modal > .alert {
    filter: invert(100%) hue-rotate(180deg) !important;
}
.dark-mode .navbar-inverse  img ,
.dark-mode .navbar-inverse .img {
    filter: none !important;
}
.dark-mode .modal-backdrop {
    background-color: #fff;
}
.dark-mode .modal-content  {
    box-shadow: 0 5px 15px #fff;
}
@media (prefers-color-scheme: dark) {
.dusk-mode ,
.dusk-mode img ,
.dusk-mode .img ,
.dusk-mode .deny-dark ,
.dusk-mode .navbar-inverse ,
.dusk-mode .modal > .alert {
    filter: invert(100%) hue-rotate(180deg) !important;
}
.dusk-mode .navbar-inverse  img ,
.dusk-mode .navbar-inverse .img {
    filter: none !important;
}
.dusk-mode .modal-backdrop {
    background-color: #fff;
}
.dusk-mode .modal-content  {
    box-shadow: 0 5px 15px #fff;
}
}

/** 列表 **/

.listbox.invisible ,
.pagebox.invisible ,
.findbox.invisible ,
.toolbox.invisible {
    margin-bottom: 0;
}

.pagebox .alert ,
.pagebox .pager ,
.pagebox .pagination {
    margin-top : 0;
}
.pagebox .alert {
    text-align : center;
    background-image: none;
}
.pagebox .pager {
    margin-left : -2px;
    margin-right: -2px;
}
.pagebox .pager li {
    margin-left :  2px;
    margin-right:  2px;
}
.pagebox .pager li.active a {
    color: #777;
    background: #eee;
}
.pagebox .page-text {
    display: block;
    padding: 7px 0;
    margin-bottom: 20px;
}
.pagebox .page-text span {
    margin-right: 0.5em;
    margin-left : 0.5em;
}

.listbox ._check,
.listbox ._radio,
.listbox ._admin._amenu {
    width: 1.5em;
}
.listbox ._hdate,
.listbox ._htime,
.listbox .date ,
.listbox .time {
    width: 7.0em;
}
.listbox .datetime {
    width: 10.5em;
}
.listbox th._rowid ,
.listbox td._rowid {
    display: none !important;
}

/* 横向菜单 */
.listbox th._amenu ,
.listbox td._amenu ,
.listbox th.sortable {
    overflow : visible;
}
.listbox th._amenu .dropdown>a ,
.listbox td._amenu .dropdown>a ,
.listbox th.sortable .dropdown>a {
    max-width: 100%;
    width    : auto;
    display  : block;
    overflow : hidden;
    text-overflow: ellipsis;
}
.listbox th._amenu .dropdown-menu ,
.listbox td._amenu .dropdown-menu ,
.listbox th.sortable .dropdown-menu {
    white-space: nowrap;
    min-width  : 0px;
    padding: 4px 4px;
    top    : -10px;
    left   : 0;
    right  : auto;
    bottom : auto;
}
.listbox th._amenu.text-right .dropdown-menu ,
.listbox td._amenu.text-right .dropdown-menu ,
.listbox th.sortable.text-right .dropdown-menu {
    left   : auto;
    right  : 0;
}
.listbox th._amenu.text-center .dropdown-menu ,
.listbox td._amenu.text-center .dropdown-menu ,
.listbox th.sortable.text-center .dropdown-menu {
    left   : auto;
    right  : auto;
}
.listbox th._amenu .dropdown-menu a ,
.listbox td._amenu .dropdown-menu a ,
.listbox th.sortable .dropdown-menu a {
    padding: 3px 8px;
}
.listbox th._amenu .dropdown-menu li ,
.listbox td._amenu .dropdown-menu li ,
.listbox th.sortable .dropdown-menu li {
    display: inline-block;
}
.listbox th._amenu .dropdown-menu li.divider ,
.listbox td._amenu .dropdown-menu li.divider ,
.listbox td.sortable .dropdown-menu li.divider {
    width :  1px;
    height: 20px;
    margin: -5px 1px;
    background: #ccc;
}

/* 排序符号 */
.listbox thead .sort-ico {
    color: #777;
    display: inline-block;
    font-style: normal;
    font-weight: normal !important;
    font-family: bootstrap-icons !important;
    font-variant: normal;
    text-transform: none;
    vertical-align: -.125em;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
.listbox thead .sortable a>.sort-ico {
    display: none;
}
.listbox thead .sort-asc a>.sort-ico ,
.listbox thead .sort-esc a>.sort-ico {
    color  : #b73;
    display: inline-block;
}
.listbox thead .sort-ico::before {
    content: "\f14c";
}
.listbox thead .sort-asc-ico::before ,
.listbox thead .sort-asc a>.sort-ico::before {
    content: "\f571";
}
.listbox thead .sort-esc-ico::before ,
.listbox thead .sort-esc a>.sort-ico::before {
    content: "\f572";
}
.listbox thead .numerial .sort-asc-ico::before ,
.listbox thead .numerial.sort-asc a>.sort-ico::before {
    content: "\f577";
}
.listbox thead .numerial .sort-esc-ico::before ,
.listbox thead .numerial.sort-esc a>.sort-ico::before {
    content: "\f578";
}

/** 旧的三角排序符 **/
/*
.listbox thead .sort-ico {
    border: 0;
    margin-left: 4px;
}
.listbox thead .sort-a-z .sort-ico ,
.listbox thead .sort-z-a .sort-ico {
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
}
.listbox thead .sort-a-z .sort-ico {
    border-bottom: 6px solid #ccc;
}
.listbox thead .sort-a-z:hover .sort-ico {
    border-bottom-color: #666;
}
.listbox thead .sort-z-a .sort-ico {
    border-top: 6px solid #ccc;
}
.listbox thead .sort-z-a:hover .sort-ico {
    border-top-color: #666;
}
*/

/** 树形 **/

.tree-list {
    margin-left: 1em;
    border-left: 1px dotted #eee;
}
.treebox:hover .tree-list {
    border-left: 1px dotted #ccc;
}
.tree-root {
    padding-left: 0;
    border-left : 0;
    margin-left : 0;
}
.tree-node table td {
    padding : 8px 0;
    cursor: pointer;
}
.tree-node table,
.tree-node table td {
    border: 0;
    border-spacing: 0;
}
.tree-curr>table,
.tree-curr>table td {
    font-weight: bold;
    text-decoration: underline;
}

.tree-hand {
    width: 20px;
}
.tree-hand .caret {
    /*
    background-image: url(../icons/tree-hand.gif);
    */
    border: 0;
    margin-left: 0;
}
.tree-fold>table .tree-hand .caret {
    /*
    background-image: url(../icons/tree-hand-fold.gif);
    */
    margin-top: -2px;
    margin-left: 9px;
    border-right: 0;
    border-left: 4px solid #999;
    border-top: 4px solid transparent;
    border-bottom: 4px solid transparent;
}
.tree-fold>table .tree-hand:hover .caret {
    margin-top: -2px;
    margin-left: 9px;
    border-right: 0;
    border-left: 4px solid #f99;
    border-top: 4px solid transparent;
    border-bottom: 4px solid transparent;
}
.tree-open>table .tree-hand .caret {
    /*
    background-image: url(../icons/tree-hand-open.gif);
    */
    margin-top: -3px;
    margin-left: 1px;
    border-bottom: 0;
    border-right: 6px solid #666;
    border-left: 6px solid transparent;
    border-top: 6px solid transparent;
}
.tree-open>table .tree-hand:hover .caret {
    margin-top: -3px;
    margin-left: 1px;
    border-bottom: 0;
    border-right: 6px solid #f66;
    border-left: 6px solid transparent;
    border-top: 6px solid transparent;
}

.tree-cnum {
    display: none;
}

/** 标签 **/

.labelbox ,
ul.labelbox ,
ol.labelbox {
    padding: 0;
    margin : 0 -5px -5px 0;
    list-style : none;
    line-height: inherit;
    font-weight: inherit;
    font-size  : inherit;
    word-break : normal;
    word-wrap  : break-word;
}
.labelbox .label {
    padding: 0 6px;
    margin : 0 5px 5px 0;
    max-width  : calc(100% - 5px);
    line-height: inherit;
    font-weight: inherit;
    font-size  : inherit;
    text-align : left;
    display  : inline-block;
    overflow : hidden;
    text-overflow: ellipsis;
    vertical-align : middle;
}
.labelist .label {
    width  : 100%;
}
.labelbox:empty ,
.labelbox .label:empty {
    margin : 0;
    padding: 0;
    display: none;
}

.label input.invisible {
    float  : left; /* 规避同时存在 file 和 hidden 会偏移的问题 */
}
.label .bi.pull-right {
    margin-left :  6px;
    margin-right: -3px;
}
.label .bi.pull-left {
    margin-left : -3px;
    margin-right:  6px;
}

.form-control.multiple {
    height : auto;
    min-height: 34px;
    padding: 6px ;
}
.form-control a,
.form-control a:hover ,
.form-control a:focus {
    text-decoration: none;
}
.form-control > a,
.form-control > .input {
    outline: none;
    display: block;
    min-width: 100%;
    padding: 0 6px;
    border : 0;
    margin : 0;
}
.form-control .labelbox:not(:empty)+a,
.form-control .labelbox:not(:empty)+.input {
    margin : 5px 0 0 0;
}
/* 修正内嵌 select 在 chrome 和 firefox 上不等高的问题 */
.form-control > select.input {
    background: inherit;
    height : 20px;
    color  : #888;
}
.form-control > select.input option {
    color  : #555;
}

.form-group-sm .form-control.multiple {
    padding: 5px;
    min-height: 30px;
}
.form-group-sm .form-control>a,
.form-group-sm .form-control>.input ,
.form-group-sm .form-control .label {
    padding: 0 5px;
    height :  18px;
    line-height: 18px;
}
.form-group-lg .form-control.multiple {
    padding: 8px;
    min-height: 46px;
}
.form-group-lg .form-control>a,
.form-group-lg .form-control>.input ,
.form-group-lg .form-control .label {
    padding: 0 8px;
    height :  26px;
    line-height: 26px;
}

.forkbox .label span ,
.filebox .label span ,
.pictbox .preview img {
    cursor: pointer;
}

/** 预览 **/

.preview {
    border : solid 1px #eee;
    border-radius: 4px;
    overflow: hidden;
    position: relative;
}
.preview img {
    position: absolute;
}
.preview .erase ,
.preview .icon  {
    position: absolute;
    width   : 20px;
    height  : 20px;
    line-height: 20px;
    font-size  : 14px;
    text-align : center;
    vertical-align: middle;
}
.preview .erase {
    z-index : 2;
    top     : 0;
    right   : 0;
}
.preview .icon  {
    z-index : 1;
    top     : 0;
    left    : 0;
    top     : calc(100% / 2 - 10px);
    left    : calc(100% / 2 - 10px);
    color   : rgba(80, 80, 80, 0.5);
}
.preview:hover ,
.preview:focus {
     box-shadow: 0 0 4px #eee;
}
.preview .erase:hover ,
.preview .erase:focus {
    text-shadow: 0 0 4px #eee;
}
.labelbox .preview {
    margin : 0 5px 5px 0 ;
    display: inline-block;
    vertical-align:middle;
}
.labelist .preview {
    display: block;
}
.labelist .preview:last-child {
    margin : 0 0  10px 0 ; /* 修正内部 block 导致外部 margin 双倍负值问题 */
}

/** 选择(废弃) **/

ul.pickbox {
    margin : 0;
    padding: 0;
    list-style: none;
}
ul.pickbox > li.btn {
    width        : 100%;
    max-width    : 100%;
    overflow     : hidden;
    white-space  : nowrap;
    text-overflow: ellipsis;
    text-align   : left;
}
ul.pickrol > li.btn.btn-link ,
ul.pickrol > li.btn.btn-text {
    box-shadow   : none;
    background   : transparent;
    border-color : transparent;
    padding-left : 0px;
    margin-bottom: 0px;
}
ul.pickbox > li.btn .close {
    margin-left  : 9px;
}
ul.pickbox > li.btn .bi,
ul.pickbox > li.btn .glyphicon {
    margin-right : 9px;
}
ul.pickrol > li.btn .bi,
ul.pickrol > li.btn .glyphicon {
    display : none;
}
ul.pickrol > li.btn-text,
ul.pickrol > li.btn-text:hover ,
ul.pickrol > li.btn-text:focus {
    cursor  : text;
    color   : inherit;
    user-select: text;
    font-weight: inherit;
}
ul.pickbox > li.btn-default.form-control ,
ul.pickrol > li.btn-default.form-control {
    color   : #555;
}

ul.pickmul {
    font-size: 0 ; /* 消除 inline-block 空隙 */
    margin-bottom:-2px;
}
ul.pickmul > * {
    display: inline-block;
    margin-bottom: 2px;
    margin-right : 2px;
}
ul.pickmul + * ,
* + ul.pickmul {
    margin-top   : 2px;
}

.pickbox:empty  ,
.pickrol  input ,
.pickrol .close ,
.picksel:not(.pickmul) .picksum ,
.picksel:not(.pickmul) .picknum {
    display : none;
}

/** 时间 **/

.datebox.form-control {
    background: #f8f8f8;
    padding: 2px 6px;
    min-height: 34px;
    height: auto;
}
.datebox.form-control a {
    margin: auto 6px;
}
.datebox.form-control span {
    padding-left : 3px;
    padding-right: 3px;
}
.datebox.form-control input,
.datebox.form-control select {
    text-align: center;
    padding-left : 0px;
    padding-right: 0px;
    border: 0;
    margin: 0;
    height: 30px;
    width : 30px;
}
.datebox.form-control .datebox-y  ,
.datebox.form-control .datebox-S  {
    width : 45px;
}
/* 去除右侧指示图标 */
.datebox.form-control input {
    appearance: none;
    -moz-appearance: none;
    -webkit-appearance: none;
}
.datebox.form-control input::-webkit-outer-spin-button ,
.datebox.form-control input::-webkit-inner-spin-button ,
.datebox.form-control input::-webkit-calendar-picker-indicator {
    appearance: none;
    -moz-appearance: none;
    -webkit-appearance: none;
    color  : transparent;
    width  : 0;
    margin : 0;
    padding: 0;
}

/* 优化文件上传样式 */
::-ms-browse {
    background : inherit;
    color      : inherit;
    font-family: inherit;
    font-size  : inherit;
    line-height: inherit;
    padding: 0;
    margin : 0;
    border : 0;
    width  : 0;
}
::-webkit-file-upload-button {
    background : inherit;
    color      : inherit;
    font-family: inherit;
    font-size  : inherit;
    line-height: inherit;
    padding: 0;
    margin : 0;
    border : 0;
    width  : 0;
}
input[type=file].form-control {
    padding: 6px 12px;
}
/* 修复 firefox 中 input 上传按钮不可调问题 */
@-moz-document url-prefix() {
input[type=file].form-control {
    padding: 3px  6px;
}
}

/** 图标 **/

.bi-hi-close::before  { content: "\f622"; }
.bi-hi-clear::before  { content: "\f2e4"; }
.bi-hi-action::before { content: "\f304"; }
.bi-hi-select::before { content: "\f26b"; }
.bi-hi-create::before { content: "\f4fa"; }
.bi-hi-update::before { content: "\f518"; }
.bi-hi-delete::before { content: "\f2e6"; }
.bi-hi-modify::before { content: "\f604"; }
.bi-hi-remove::before { content: "\f5de"; }
.bi-hi-review::before { content: "\f341"; }
.bi-hi-reveal::before { content: "\f292"; }
.bi-hi-export::before { content: "\f1c6"; }
.bi-hi-import::before { content: "\f1bc"; }
.bi-hi-search::before { content: "\f52a"; }
.bi-hi-reload::before { content: "\f130"; }
.bi-hi-filter::before { content: "\f3e1"; }
.bi-hi-sifter::before { content: "\f18f"; }
.bi-hi-statis::before { content: "\f17e"; }
.bi-hi-column::before { content: "\f465"; }
.bi-hi-manual::before { content: "\f2d1"; }
.bi-hi-logout::before { content: "\f307"; }
.bi-hi-path::before   { content: "\f422"; }
.bi-hi-page::before   { content: "\f199"; }
.bi-hi-next::before   { content: "\f551"; }
.bi-hi-prev::before   { content: "\f55d"; }
.bi-hi-time::before   { content: "\f293"; }
.bi-hi-date::before   { content: "\f214"; }
.bi-hi-morn::before   { content: "\f288"; }
.bi-hi-mine::before   { content: "\f4de"; }
.bi-hi-mima::before   { content: "\f537"; }
.bi-hi-link::before   { content: "\f470"; }
.bi-hi-fork::before   { content: "\f35f"; }
.bi-hi-file::before   { content: "\f369"; }
.bi-hi-image::before  { content: "\f36c"; }
.bi-hi-video::before  { content: "\f37a"; }
.bi-hi-audio::before  { content: "\f376"; }
.bi-hi-email::before  { content: "\f32f"; }
.bi-hi-phone::before  { content: "\f4e6"; }
